package com.sc.nft.admin.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sc.nft.dto.TaskPrizeDTO;
import com.sc.nft.entity.dto.task.LinkDTO;
import com.sc.nft.enums.task.ParticipantsEnum;
import com.sc.nft.enums.task.TaskTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class TaskDetailVO {

    @ApiModelProperty("id")
    private Long id;

    /**
     * 任务模板Id
     */
    @ApiModelProperty("任务模板Id")
    private Long taskPanelId;

    /**
     * daoId
     */
    @ApiModelProperty("daoId")
    private Long daoId;

    /**
     * 达成条件
     */
    @ApiModelProperty("达成条件")
    private String conclude;

    /**
     * 是否官方任务
     */
    @ApiModelProperty("是否官方任务")
    private Boolean authorityTask;

    /**
     * icon
     */
    @ApiModelProperty("icon")
    private String taskIcon;

    /**
     * 任务名称
     */
    @ApiModelProperty("任务名称")
    private String taskName;

    /**
     * 任务类型
     */
    @ApiModelProperty("任务类型")
    private TaskTypeEnum type;

    /**
     * 权重
     */
    @ApiModelProperty("权重")
    private Integer sort;

    /**
     * 状态
     */
    @ApiModelProperty("状态")
    private Boolean status;

    /**
     * 完成任务邀请人数
     */
    @ApiModelProperty("完成任务邀请人数")
    private Integer inviteCount;

    /**
     * 购买商品Id
     */
    @ApiModelProperty("购买商品Id")
    private Long buyCollectionId;

    @ApiModelProperty("购买商品名称")
    private String buyCollectionName;

    /**
     * 任务开始时间
     */
    @ApiModelProperty("任务开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date taskStartDate;

    /**
     * 任务结束时间
     */
    @ApiModelProperty("任务结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date taskEndDate;

    /**
     * 完成上限
     */
    @ApiModelProperty("完成上限")
    private Integer superiorLimit;

    /**
     * 参与对象0，不限 1，指定NFT
     */
    @ApiModelProperty("参与对象0，不限 1，指定NFT")
    private ParticipantsEnum participants;

    /**
     * 指定商品id
     */
    @ApiModelProperty("指定商品id")
    private Long partakeCollectionId;

    @ApiModelProperty("审核是否通过 0:待审核 1:通过 2:拒绝")
    private Integer audit;

    @ApiModelProperty("购买商品名称")
    private String partakeCollectionName;

    @ApiModelProperty("任务奖励")
    private List<TaskPrizeDTO> taskPrizeDTOS;

    @ApiModelProperty("任务进度重置 0 当天0点 1每周一0点")
    private Integer taskPlan;
    @ApiModelProperty(value = "藏品范围")
    private Boolean collectionRange;
    @ApiModelProperty(value = "商品范围")
    private Boolean mallRange;
    @ApiModelProperty("累计金额")
    private BigDecimal totalPrice;
    @ApiModelProperty("关联名称(指定藏品/商品任务展示)")
    private List<LinkDTO> linkDTOList;
}